Effect capabilities for Haskell: Taming effect interference in monadic programming
نویسندگان
چکیده
Article history: Received 13 March 2015 Received in revised form 19 November 2015 Accepted 22 November 2015 Available online 28 November 2015
منابع مشابه
Effective Aspects: A Typed Monadic Embedding of Pointcuts and Advice
Aspect-oriented programming (AOP) aims to enhance modularity and reusability in software systems by offering an abstraction mechanism to deal with crosscutting concerns. However, in most general-purpose aspect languages aspects have almost unrestricted power, eventually conflicting with these goals. In this work we present Effective Aspects: a novel approach to embed the pointcut/advice model o...
متن کاملMonadic I/o in Haskell 1.3
We describe the design and use of monadic I/O in Haskell 1.3, the latest revision of the lazy functional programming language Haskell. Haskell 1.3 standardises the monadic I/O mechanisms now available in many Haskell systems. The new facilities allow more sophisticated text-based application programs to be written portably in Haskell. Apart from the use of monads, the main advances over standar...
متن کاملSemantics of fixIO
Recent work on recursion over the values of monadic actions resulted in the introduction of a family of fixed point operators, one for each different kind of monadic effect. In the context of Haskell, the function fixIO is the corresponding operator for the IO monad. Unfortunately, both the IO monad and fixIO are language primitives in Haskell, i.e. they can not be defined within the language i...
متن کاملCommunicating Haskell Processes: Composable Explicit Concurrency using Monads
Writing concurrent programs in languages that lack explicit support for concurrency can often be awkward and difficult. Haskell’s monads provide a way to explicitly specify sequence and effects in a functional language, and monadic combinators allow composition of monadic actions, for example via parallelism and choice – two core aspects of Communicating Sequential Processes (CSP).We show how t...
متن کاملSemantics of value recursion for Monadic Input/Output
Monads have been employed in programming languages for modeling various language features, most importantly those that involve side effects. In particular, Haskell’s IO monad provides access to I/O operations and mutable variables, without compromising referential transparency. Cyclic definitions that involve monadic computations give rise to the concept of value-recursion, where the fixed-poin...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Sci. Comput. Program.
دوره 119 شماره
صفحات -
تاریخ انتشار 2016